home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-20 / mapr861.zip / MAPPER.DOC < prev    next >
Text File  |  1991-03-26  |  26KB  |  489 lines

  1.          MAPPER86/87 .. A DX MAP DRAWING and Propagation Program
  2.            for IBM PC Compatibles with graphics capability.
  3.  
  4.                              Version 6.1
  5.  
  6.                                   by
  7.                            Dennis P. Murray
  8.                         11165 McDonald Street
  9.                         Culver City, Ca. 90230
  10.                          CompuServ 72770,2765
  11.                            26 March, 1991
  12.  
  13. This program, written for BASIC compilers such as MICROSOFT QUICK BASIC or
  14. BORLAND TURBO BASIC, displays a map of the world centered on a
  15. user-selectable QTH, and does propagation predictions based upon one of 4
  16. possible methods based upon modified MINIMUF 3.5 or MAXIMUF 3.0 methods. It
  17. shows the regions of sunlight and darkness around the world, and updates
  18. these regions automatically at user- specified time intervals. It can also
  19. accept arbitrary times and dates at the user option. The program accepts
  20. DXCC prefixes or latitude/longitude values for the DX location, draws the
  21. path from the home QTH to that location, and displays the range, azimuth
  22. and wave launch elevation angle from the home QTH. The user can select
  23. either short or long paths; the sunspot number; antenna height, gain, and
  24. polarization for both home QTH and DX station; transmit power; and the
  25. minimum wave launch angle to be used for propagation prediction. The
  26. propagation prediction gives the MUF (maximum usable frequency), LUF
  27. (lowest usable frequency) based upon E-layer screening, and the minimum
  28. number of F-layer hops for the minimum launch angle. Predictions of signal
  29. strength are made for Ham Band frequencies which include D-layer
  30. absorption, reflection losses, and transmit and receive antenna losses due
  31. to ground plane reflection at low elevation angles.
  32.  
  33. This program is written for IBM PC compatible computers with a Graphics
  34. capability and color display. The program runs quite quickly on an AT clone
  35. with a hard disk and 640k of RAM, but it might be a 'dog' on a floppy-only
  36. machine because it must read some long files for the map data.
  37.  
  38. The program is being uploaded in two versions, named MAPPER86 and MAPPER87.
  39. MAPPER86 is compiled in QuickBasic 3.0 in order to use floating point
  40. computations under the Microsoft Binary Format which run much faster on
  41. machines without 80x87 math co-processors than do computations under the
  42. IEEE format supported by QBasic version 4.0 and later. This version
  43. supports graphics adapters supported under QB 3.0 ( CGA, EGA, and EGA with
  44. monochrome display). MAPPER87 is compiled under QBasic v 4.5 and supports
  45. all graphics adapters ( CGA, EGA, EGA/Monochrome,MCGA,VGA, and HERCULES).
  46. It will run on machines with or without a Math Coprocessor, but it is very
  47. slow without one because of the lousy software emulation of the 80x87
  48. routines which Microsoft has provided. It would be nice if Microsoft would
  49. provide an option on which kind of math routines it uses in future versions
  50. of Quick Basic ( or speeded up the IEEE format software a lot ), but I
  51. wouldn't hold my breath.
  52.  
  53. If you want to use the Hercules mode you must first load the Microsoft
  54. Hercules driver MSHERC.COM which I have included in the MAPPER87 package
  55. courtesy of Microsoft.
  56.  
  57. Version 6.0 differs from 5.0 in that it has an extended DX Prefix list,
  58. uses a more detailed world map data file with a different file format than
  59. previous versions, and is somewhat more 'user friendly' about accepting
  60. input data. It also provides a facility for printing out a 24 hour summary
  61. of propagation conditions for a given path, together with a plot of the NUF
  62. over that period. An 80 column printer which recognizes a Form Feed command
  63. is needed for this option.
  64.  
  65. Most importantly, Version 6 has added an entirely new method for
  66. propagation predictions based upon MAXIMUF 3.0, and allows the user to
  67. select whether the Maximum Useable Frequency ( MUF ) uses the ionospheric
  68. hops nearest to the transmitter and the receiver for its determination, or
  69. takes the worst MUF among all the hops along a multi-hop path.
  70.  
  71.  
  72. The author does not intend to support this software, but is simply
  73. releasing it into the public domain for non-commercial use by HAMS who know
  74. what they are doing with their computer. The BASIC source code is included
  75. for that reason.
  76.  
  77. The following files are a part of the MAPPER system of files:
  78.  
  79.           1- MAPPER86/87.BAS  The Program Source Code Specific for Either
  80.                               Q-BASIC v3.0 or v4.5
  81.  
  82.           2- MAPPER1.INC      An 'INCLUDE' File Containing the beginning
  83.                               source code common to both versions.
  84.  
  85.           3- MAPPER2.INC      An 'INCLUDE' File containing most of the
  86.                               mapping source code common to both versions.
  87.  
  88.           4- MAP-SUBS.BAS     Source code for the propagation prediction
  89.                               calculations.
  90.  
  91.           5- MAP-COM.INC      An 'INCLUDE' File containing some COMMON and DIM
  92.                               statements needed by both code modules.
  93.  
  94.           6- MAP-DEF.INC      An 'INCLUDE' file containing function definitions
  95.                               needed by both modules.
  96.  
  97.           7- MAPPER86/87.EXE  the Q-BASIC v3.0 or v4.5 executable code
  98.  
  99.           8- MAPPER.ATL       An Atlas of DXCC countries and their
  100.                               latitudes, longitudes, and DX prefix.
  101.                               This is an ASCII file ,sorted by prefix,
  102.                               which can be added onto by the user with
  103.                               a word processor or text editor.
  104.  
  105.           9- PREFIX.ATL        An Extended Atlas of country prefixes and
  106.                               their latitudes, longitudes. This file uses
  107.                               the official internationally designated
  108.                               prefix ranges to identify the country and
  109.                               permits identification of some of the more
  110.                               exotic DX call signs which have gotten more
  111.                               common. This is an ASCII file ,sorted by
  112.                               prefix, which can be added onto by the user
  113.                               with a word processor or text editor.
  114.  
  115.          10- MAPPER.DEF       A short file used to store some default
  116.                               values used by the program.
  117.  
  118.  
  119.          11- MAPPER.DOC       This instruction file.
  120.  
  121.          12- WORLD.All        A large file containing the lat/lon of the
  122.                               world's borders. This is used to recompute
  123.                               the map whenever the map center point is
  124.                               redefined.
  125.  
  126.          13- MSHERC.COM       A Microsoft program to permit the use of a
  127.                               Hercules video adapter with MAPPER87. It must
  128.                               be executed prior to executing MAPPER87. This
  129.                               option is not available for MAPPER86 because
  130.                               that version is compiled under Quick Basic
  131.                               Version 3 which did not support Hercules
  132.                               video.
  133.  
  134.          14- INTRPT.OBJ       The Microsoft object module supplied with QB
  135.                               version 3 which permits Q-BASIC to call BIOS
  136.                               interrupts or to determine the memory segment
  137.                               occupied by an array. This is only needed if
  138.                               you want to recompile MAPPER86 using QB3.0.
  139.                               See "Instructions for recompiling" below in
  140.                               this document.
  141.  
  142.          15- INTRPT.ASM       The Assembly language source code to create
  143.                               INTRPT.OBJ.
  144.  
  145.  
  146.          16- MAPPER1/2.SCR    Large files which are used to store and
  147.                               retrieve the screen data for a world map
  148.                               centered on the user's location. These files
  149.                               are not supplied in the .ARC files but
  150.                               created by the program when it is first used
  151.                               and they are rewritten whenever the user
  152.                               changes the 'Home' location. ( It is
  153.                               interesting to view the world as seen from DX
  154.                               locations.) This data is read into a large
  155.                               array in memory to permit rapid redrawing of
  156.                               the map as the sun moves. The file is written
  157.                               into the integer array NSTORE by BLOAD and
  158.                               BSAVE commands. Because the program uses a
  159.                               lot of memory to speed things up, this array
  160.                               is DYNAMIC and does not generally reside in
  161.                               the normal BASIC data segment.
  162.  
  163.  
  164. To accommodate different uses I have broken the file set into three ARC
  165. distribution files:
  166.  
  167.             1- MAPR86.ARC     is intended for those who only want to
  168.                               operate MAPPER86 and who don't have math
  169.                               coprocessors. It contains the following
  170.                               files:
  171.                                    MAPPER.ATL
  172.                                    MAPPER.DEF
  173.                                    MAPPER.DOC
  174.                                    MAPPER86.EXE
  175.                                    PREFIX.ATL
  176.                                    WORLD.ALL
  177.  
  178.             2- MAPR87.ARC     is intended for those who only want to
  179.                               operate MAPPER87 and who do have math
  180.                               coprocessors. It contains the following
  181.                               files:
  182.                                    MAPPER.ATL
  183.                                    MAPPER.DEF
  184.                                    MAPPER.DOC
  185.                                    MAPPER87.EXE
  186.                                    MSHERC.COM
  187.                                    PREFIX.ATL
  188.                                    WORLD.ALL
  189.  
  190.  
  191.             3- MAPPER.ARC     is intended for those who are interested in
  192.                               studying, modifying, customizing, or
  193.                               recompiling the MAPPER program to suit their
  194.                               own purposes. It contains the source code
  195.                               files for the MAPPER system:
  196.                                    INTRPT.ASM
  197.                                    INTRPT.OBJ
  198.                                    MAPPER.DOC
  199.                                    MAPPER1.INC
  200.                                    MAPPER2.INC
  201.                                    MAPPER86.BAS
  202.                                    MAPPER87.BAS
  203.                                    MAP-SUBS.BAS
  204.                                    MAP-COM.INC
  205.                                    MAP-DEF.INC
  206.  
  207. The author encourages the distribution of this program to anyone who might
  208. find it useful, or onto bulletin boards which deal with HAM radio or
  209. shortwave listening. Please make sure to include ALL the required files for
  210. one of the ARC distribution sets described above in any uploading however.
  211.  
  212.  
  213.  
  214.  
  215. INSTRUCTIONS:
  216.  
  217.  
  218. To run this program simply enter 'MAPPER86' or 'MAPPER87'. After an initial
  219. message explaining the program is displayed, and you press any key to
  220. proceed, you will be presented with a 8-choice initial menu which allows
  221. you to change the default values of:
  222.  
  223.         1- Sunspot number
  224.         2- Home QTH latitude and longitude
  225.         3- The time interval at which the daylight/darkness areas are
  226.             redrawn.
  227.         4- Transmitter power output.
  228.         5- Minimum elevation angle for propagation predictions.
  229.         6- Graphics Mode
  230.         7- Method for Propagation prediction.
  231.         8- Home antenna height, gain, and polarization.
  232.         9- DX station antenna height, gain, and polarization.
  233.  
  234. Pressing the appropriate number key will put up prompts to allow changes to
  235. these variables, and will return you to this menu after a change is
  236. entered. (Important: Make sure you select the proper display type for your
  237. machine at this menu when you first run it. This package will have a file
  238. of my own default values for the parameters in this menu, and they are
  239. unlikely to be the correct values for your machine.)
  240.  
  241. After you have made the appropriate changes pressing <ENTER> at the menu
  242. prompt will store these new values in the MAPPER.DEF file and proceed on to
  243. the map drawing.
  244.  
  245.      The map drawing will first put up a blank box, then calculate the
  246. position of the sun at the time and date currently held by the DOS, draw
  247. the solar terminator ( it looks like a satellite ground trace ), and color
  248. the sun-lit portions of the world in red. It will then go on to draw the
  249. country boundaries, color the oceans blue, and color the USA green. The
  250. land areas which are in darkness will show up in black. The program may
  251. miss coloring part of the oceans blue because of the position of the solar
  252. terminator blocking the PAINT commands used in the subroutine at line 8000
  253. ... . I got tired of adding ocean points to this routine to cover all the
  254. contingencies.
  255.  
  256.      After the map is drawn a Menu bar will appear on the bottom line of
  257. the screen, with 9 choices selected by the function keys:
  258.  
  259.            f1-   Select DX Prefix.
  260.                 You will be prompted to enter a DX prefix ( eg. ZS for
  261.                 S. Africa ). The program will then search the DX atlas
  262.                 for an occurrence of this prefix. It will display all
  263.                 of the entries ( ie ZS1,ZS2,... ) that contain this
  264.                 string and ask you to select one. If the number of
  265.                 candidate entries is large you can simply <ENTER> to
  266.                 continue the search.
  267.  
  268.                 When a selection is made the program will fetch
  269.                 the location of the prefix, make a propagation
  270.                 prediction for the currently selected date and time,
  271.                 draw the path from your QTH to that location, and
  272.                 display sundry useful information at the top of the
  273.                 screen. On the left of the screen the signal strength
  274.                 predictions will be shown for all Ham bands for which
  275.                 the frequency is more than 80% of the lowest usable
  276.                 frequency (LUF), less than 120% of the maximum usable
  277.                 frequency (MUF), and whose predicted signal strength
  278.                 is higher than -20dB relative to 0.5 microvolts into a
  279.                 50 ohm receiver input.
  280.  
  281.                 For each band which meets these criteria I display the
  282.                 frequency, the absorption losses (Labs), the ground
  283.                 reflection losses (Lref), the transmit and receive
  284.                 antenna losses due to ground reflection ( Ltx, Lrx ),
  285.                 and signal strength ( Prcv ). The losses are given in
  286.                 dB. The signal strength is given in dB relative to 0.5
  287.                 microvolts into 50 ohms. This is about an S-1 signal
  288.                 level for most Ham receivers, and S-9 usually
  289.                 corresponds to 50 microvolts at the antenna terminals.
  290.                 Thus a signal strength of 40 dB would correspond to a
  291.                 S-9 prediction.
  292.  
  293.                 The user should be cautioned that the signal strength
  294.                 predictions are very uncertain. I only calculate paths
  295.                 via the F2 layer, and there a great number of other
  296.                 propagation modes possible which may be better or
  297.                 worse than the pure F2 mode. Don't blame the author if
  298.                 this program says that you can't possibly work
  299.                 Australia when you are hearing VK's with S-9 signals.
  300.                 These are only crude indications of the likelihood of
  301.                 a path being open.
  302.  
  303.            f2-Specify Country Name.
  304.                 Same as option 1 except that you are prompted for the
  305.                 name of a country ( or a subset of that name such as
  306.                 'AUS', which will find both Austria and Australia ).
  307.                 The search process is insensitive to the case of your
  308.                 entry.
  309.  
  310.            f3-Specify Lat/Lon.
  311.                 Same as the above option except you will be prompted
  312.                 to enter the latitude and longitude of the desired DX
  313.                 location.
  314.  
  315.  
  316.            f4-Select Date/Time.
  317.                 Prompts for a new date and time to be used to
  318.                 calculate solar terminator and make propagation
  319.                 predictions. <ENTER> responses to either of these
  320.                 prompts will fetch the current DOS value of date or
  321.                 time. This option will also turn off the automatic
  322.                 updating of the terminator and map redraw.
  323.  
  324.            f5-Use Real Time.
  325.                 This option will reset the above option to the real
  326.                 (DOS) date and time and enable the auto update
  327.                 feature.
  328.  
  329.            f6-Toggle Between Short and Long Path.
  330.                 This toggles the path from the long path option back
  331.                 to short path and vice-versa
  332.  
  333.  
  334.            f7-Change Parameters.
  335.                 This returns you to the 7 choice initial menu to
  336.                 change the various default parameters such as sunspot
  337.                 number, antenna heights, power, etc.
  338.  
  339.            f8-Toggle Printed Output of 24 hour Propagation Predictions
  340.                 on or off. When F8 is hit for the first time it 'toggles'
  341.                 this function on and subsequent hits turn the option on and
  342.                 off in sequence. When this option is 'on' it prints
  343.                 out the same information on propagation that is displayed
  344.                 on the screen, but does it for an entire day at one hour
  345.                 intervals, and plots a graph of the MUF versus time. The
  346.                 printing starts when you select a new DX location, not
  347.                 immediately after the function is toggled on.
  348.  
  349.            f9-Quit.
  350.                 Exits the program and returns you to DOS.
  351.  
  352.  
  353.      The program is entirely menu-driven so you don't have to remember
  354. any special commands to use it.
  355.  
  356.      Good luck!!
  357.  
  358. Instructions for recompiling:
  359.  
  360. Some of you may wish to customize this program in some way, so I have
  361. included the BASIC source code. If you make changes you will have to
  362. recompile and LINK the code. The following instructions may help you.
  363.  
  364. If you have a math coprocessor or if you don't care how slow the program
  365. runs then compile using Quick-Basic 4.0 or later:
  366.  
  367.          Compile and LINK Using the following two command lines:
  368.  
  369.          BC MAPPER87/D/X/O/V; <Rtn>
  370.          BC MAP-subs/D/X/O;   <Rtn>
  371.          LINK MAPPER87+MAP-SUBS; <Rtn>
  372.  
  373.  
  374. If you don't have a coprocessor and you want faster execution then compile
  375. using Quick-Basic 3.0. In this case you will have to link an additional
  376. assembly language library INTRPT.OBJ which Micrsoft provided with QB3.0. I
  377. have included this file and its source code in the package.
  378.  
  379.  
  380.          QB MAPPER86/D/X/O/V; <Rtn>
  381.          QB MAP-SUBS/D/X/O;   <Rtn>
  382.          LINK MAPPER86+MAP-SUBS+INTRPT; <Rtn>
  383.  
  384. This program is totally incompatible with the BASIC Interpreter which IBM
  385. and Microsoft supply with their DOS. (i.e. BASICA of GWBASIC ). There is
  386. not a prayer of making it run under the interpreter.
  387.  
  388.  
  389.  
  390. Some Technical Information:
  391.  
  392. The propagation calculations are based upon either the MINIMUF 3.5 method
  393. or the MAXIMUF 3.0 method, but with many modifications by this author. I am
  394. indebted to Robert R. Brown, NM7M, for providing me with the MAXIMUF 3.0
  395. method for MUF calculation. I had been trying (unsucessfully) since Version
  396. 2 of this program to obtain this method because it has been evaluated as
  397. the most accurate PC-based method in comparison with IONCAP ( The elaborate
  398. Ionospheric model developed by the Institute of Telecommunication Sciences
  399. in Boulder, CO. which is normally used as a standard of comparison). The
  400. method is due originally to Raymond Fricker of the BBC External Services.
  401. Its key element is a mathematical model for the vertical incidence sounding
  402. frequency obtained by noting that the ionosphere mainly depends upon the
  403. solar zenith angle and geomagnetic latitude. He then did a curve-fit of the
  404. the CCIR Report 340 vertical sounding frequency to the function
  405.  
  406.      Fv= A*Cos( B*(T-C) )* Cos ( Z+D))^0.5
  407.  
  408. where T is the local time, Z is the geomagnetic latitude, and A,B,C,D are
  409. 'constants' which depend upon Sunspot number and season of the year. Having
  410. obtained the main dependence in this form, he the went on to derive a set
  411. of 20 'correction' terms to improve the fit. The method also uses a
  412. curve-fit to the virtual height of the F2 layer. The method's equations can
  413. be obtained from examination of the Subroutine CRIT.FREQ in the
  414. MAP-SUBS.BAS source code.
  415.  
  416. I have made a number of enhancements to the 'standard' propagation
  417. calculations:
  418.  
  419.    1- The 'standard' CCIR method for hand-calculating MUF uses only the
  420.       first and last ionospheric bounce points ( the two control point
  421.       method ), This method is available in MAPPER. In addition, I have
  422.       provided the user with the option to let MAPPER evaluate the MUF at
  423.       every hop and select the worst-case condition out of all of them.
  424.       This results in more pessimistic MUF and LUF estimates than the
  425.       endpoint method because conditions over parts of the total path may
  426.       be much different than conditions at only the ends of the path. A
  427.       path with a hop near the near the North pole is an important example.
  428.  
  429.       I leave it to the user to try the various methods and see which works
  430.       best for you. I would be interested in any results you care to share.
  431.  
  432.  
  433.    2- I have included the E-layer screening frequency and lowest-
  434.       usable frequency ( LUF ) estimation technique given in chapter 4
  435.       of 'Amateur Radio Software ', by John Morris GM4ANB , RSGB
  436.       Books, Lambda House, Cranborne Road, Potters Bar, Hertfordshire
  437.       EN6 3JW. The subroutine starting at line 45000 contains this
  438.       calculation.
  439.  
  440.     3-I have used what apparently is the HAM convention for longitudes
  441.       being positive-West for the input and output in this program, in
  442.       the PROPAGATE subroutine, and in the DX Atlas file MAPPER.ATL.
  443.       However, in the internals of the program I immediately reverse
  444.       the sign of the longitude. Being an engineer by training I think
  445.       in terms of right-handed coordinate systems! Therefore those who
  446.       want to modify the program should be wary of the sign of the
  447.       longitude being used.
  448.  
  449.     4-Note that I have changed the names of the variables in the
  450.       MINIMUF subroutine from the standard values to names which are
  451.       descriptive of what the variable actually is.
  452.  
  453.     5-I have augmented the propagation predictions with a signal
  454.       strength prediction. For each ionospheric control (bounce) point
  455.       an estimate of the D-layer absorption is made according to the
  456.       method in chapter 5 of Davies, "Ionospheric Radio Propagation",
  457.       NBS monograph 80, 1965. The total D-region absorption is summed
  458.       up for all control points. The subroutine at line 46000 contains
  459.       this calculation.
  460.  
  461.     6-In addition, a calculation of the loss due to ground reflection
  462.       is made for each ground reflection point along the path. At each
  463.       of these points the map on the screen is checked to see if that
  464.       point is colored blue. If so, it is assumed that the bounce
  465.       point is at sea, and the reflection coefficient for sea water is
  466.       calculated ( dielectric constant of 80, conductivity of 4 mho/m
  467.       ). If the reflection point is over land then a dielectric
  468.       constant of 4 and conductivity of 0.01 mho/m are used. The
  469.       Fresnel reflection coefficients for both horizontal an vertical
  470.       polarization are power-averaged to account for the random
  471.       polarization of the wave due to Faraday rotation at HF
  472.       frequencies. I have also modified the reflection coefficients to
  473.       account for surface roughness. A RMS surface roughness of 4m is
  474.       used on the sea, and 15m for land points. The subroutine REFLECT at
  475.       line 41000 of module MAP-SUBS makes the reflection calculations.
  476.  
  477.     7-To account for the fact that most Hams have fairly low antenna
  478.       heights, thus suffer large losses at low elevation angles, I
  479.       explicitly calculate the multipath cancellation losses for each
  480.       antenna in the subroutine MULTIPATH at line 42000 in MAP-SUBS.BAS.
  481.       This is the standard Fresnel reflection calculation without surface
  482.       roughness included. Most urban locations will be worse than this
  483.       calculation suggests because buildings in the foreground will
  484.       actually shadow the low angle line-of-sight and modify the reflection
  485.       area. If you know you have poor line-of-sight you should modify the
  486.       minimum launch angle setting at the initial menu appropriately.
  487.  
  488.  
  489.